<template>
  <ul class="todo-list">
    <!-- completed: 完成的类名 -->
    <!-- 根据父组件传来的数据渲染界面，并添加动态属性 -->
    <li :class="{ completed: item.isDone }" v-for="item in list" :key="item.id">
      <div class="view">
        <input
          class="toggle"
          type="checkbox"
          :checked="item.isDone"
          @change="changeFn(item.id)"
        />
        <label>{{ item.name }}</label>
        <!-- 为删除按钮添加点击事件 -->
        <button class="destroy" @click="removeFn(item.id)"></button>
      </div>
    </li>
  </ul>
</template>

<script>
export default {
  props: {
    // 接收list数据
    list: {
      required: true,
      type: Array,
    },
  },
  methods: {
    // 删除方法 子向父通信
    removeFn(id) {
      this.$emit('remove', id)
    },
    // 改变isDone状态 子向父通信
    changeFn(id) {
      this.$emit('change', id)
    },
  },
}
</script>
